fi
AC_SUBST(DISABLE_ON_QUARTZ)
+AC_CHECK_LIB([rt], [shm_open], [SHM_LIBS="-lrt"], [SHM_LIBS=""])
+AC_SUBST(SHM_LIBS)
+
+AC_CHECK_FUNCS(posix_fallocate)
+
if test "x$enable_broadway_backend" = xyes; then
GDK_BACKENDS="$GDK_BACKENDS broadway"
cairo_backends="$cairo_backends cairo"
## Process this file with automake to produce Makefile.in
include $(top_srcdir)/Makefile.decl
+NULL =
libgdkincludedir = $(includedir)/gtk-3.0/gdk
libgdkbroadwayincludedir = $(includedir)/gtk-3.0/gdk/broadway
if OS_UNIX
libgdk_broadway_la_LIBADD = \
- -lrt
+ $(SHM_LIBS) \
+ $(NULL)
endif
broadwayd_SOURCES = \
if OS_WIN32
broadwayd_LDADD = $(GDK_DEP_LIBS) -lws2_32
else
-broadwayd_LDADD = $(GDK_DEP_LIBS) -lrt
+broadwayd_LDADD = $(GDK_DEP_LIBS) @SHM_LIBS@
endif
MAINTAINERCLEANFILES = $(broadway_built_sources)
res = ftruncate (fd, size);
g_assert (res != -1);
+#ifdef HAVE_POSIX_FALLOCATE
res = posix_fallocate (fd, 0, size);
if (res != 0)
{
shm_unlink (name);
g_error ("Not enough shared memory for window surface");
}
+#endif
ptr = mmap(0, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);